import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.action_chains import ActionChains

# 可选择的webdriver路径
# service = Service('path/to/chromedriver')

# 启动浏览器实例
driver = webdriver.Chrome()  # 你可以在括号里传入参数：service=service

try:
    # 打开知乎登录页
    driver.get('https://www.zhihu.com/signin?next=%2F')

    # 使用显性等待来确保元素可以被查找
    driver.implicitly_wait(10)  # 除非页面加载完毕，可以通过增加显性等待的方式

    # 切换到密码登录选项
    password_login_button = driver.find_element(By.XPATH, '//div[contains(text(), "密码登录")]')
    password_login_button.click()

    # 输入用户名和密码
    email_element = driver.find_element(By.NAME, 'username')
    password_element = driver.find_element(By.NAME, 'password')

    email_element.send_keys('18715667626')
    password_element.send_keys('huyu6666')

    # 找到并点击登录按钮
    login_button = driver.find_element(By.XPATH,
                                       '//button[contains(@class, "Button--primary")]')
    login_button.click()


    # 获取到需要的数据、截屏、页面元素或后续步骤
    # 可以根据需求编写更多逻辑

    # 等待登录过程和加载首页，视网速和电脑配置而调整
    time.sleep(5)  # 您可以用更合适的条件等待，如WebDriverWait和expected_conditions

    # 确认已经成功登录，然后抓取首页内容
    homepage_content = driver.page_source
    print(homepage_content[:1000])  # 打印首页内容的前1000个字符

finally:
    # 确保浏览器关闭
    driver.quit()